package com.woniu.component;

import com.woniu.util.OrderContext;
import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.core.NodeBooleanComponent;

/**
 * 一级审批节点，使用布尔组件（NodeBooleanComponent）实现
 * 通过返回true/false决定流程走向
 */
@LiteflowComponent("level1Approve")
public class Level1ApproveNode extends NodeBooleanComponent { // 继承布尔组件父类

    /**
     * 核心处理与判断方法
     * @return true表示审批通过，false表示审批拒绝
     * @throws Exception 处理过程中可能抛出的异常
     */
    @Override
    public boolean processBoolean() throws Exception {
        OrderContext context = this.getContextBean(OrderContext.class); // 获取流程上下文

        // 1. 检查库存是否OK
        if (!context.isInventoryOk()) {
            String errorMsg = context.getErrorMsg();
            System.out.println("❌ 一级审批拒绝（库存问题）：" + errorMsg);
            return false; // 库存不通过，返回false
        }

        // 2. 模拟审批逻辑
        boolean approved = true; // 审批结果，true为通过，false为拒绝

        if (!approved) {
            context.setErrorMsg("一级审批未通过");
            System.out.println("❌ 一级审批拒绝：审批逻辑不通过");
            return false; // 审批不通过，返回false
        }

        // 3. 审批通过
        System.out.println("✅ 一级审批通过");
        return true; // 审批通过，返回true
    }
}
    